import { listForAdminRole } from '@/api/sys/sys.rbac.service.js'
const methods = {
  /**
   * 处理单行选中事件
   * @param {} selection 选中行集合
   * @param {*} vm vue实例对象
   */
  handleSelectionChange (selection, vm) {
    vm.selection = selection
  },
  /**
   * 搜索是否显示处理
   * @param {*} vm vue实例对象
   */
  handleSearchable (vm) {
    vm.searchable = !vm.searchable
  },
  /**
   * 刷新列表
   * @param {*} vm vue实例对象
   */
  handleRefresh (vm) {
    vm.requestData(vm)
  },
  /**
   * 搜索
   * @param {*} searchForm 搜索表单
   * @param {*} vm vue实例对象
   */
  handleSearch (searchForm, vm) {
    // this.searchForm = searchForm
    vm.pageIndex = vm.$config.pageIndex
    vm.pageSize = vm.$config.pageSize
    vm.requestData(vm)
  },
  /**
   * 当前页改变事件
   * @param {*} pageIndex 当前页
   * @param {*} vm vue实例对象
   */
  handlePageIndexChange (pageIndex, vm) {
    vm.pageIndex = pageIndex
    vm.requestData(vm)
  },
  /**
   * 每页大小改变事件
   * @param {*} pageSize 每页大小
   * @param {*} vm vue实例对象
   */
  handlePageSizeChange (pageSize, vm) {
    vm.pageSize = pageSize
    vm.pageIndex = vm.$config.pageIndex
    vm.requestData(vm)
  },
  /**
   * 请求列表数据
   * @param {*} vm vue实例对象
   */
  requestData (vm, type) {
    if (!vm.loading) {
      vm.loading = true
      listForAdminRole(vm.getRequestData(vm)).then(res => {
        vm.loading = false
        vm.tableData = res.data.rows
        vm.recordCount = res.data.recordCount
      }).catch(e => {
        vm.loading = false
      })
    }
  },
  /**
   * 获取请求参数
   * @param {} vm vue实例对象
   */
  getRequestData (vm) {
    if (vm.$refs['search']) {
      var form = {}
      var obj = vm.$refs['search'].form
      Object.keys(obj).forEach(key => {
        if (typeof (obj[key]) !== 'number') {
          if (obj[key]) {
            form[key] = obj[key]
          }
        } else {
          if (obj[key] !== 99) {
            form[key] = obj[key]
          }
        }
      })
      return {
        pageIndex: vm.pageIndex,
        pageSize: vm.pageSize,
        roleId: vm.params.id,
        ...form
      }
    } else {
      return {
        roleId: vm.params.id,
        pageIndex: vm.pageIndex,
        pageSize: vm.pageSize
      }
    }
  },
  /**
   * 获取当前选中行
   * @param {} vm vue实例对象
   */
  getEditRow (vm) {
    if (vm.selection.length) {
      return vm.selection[0]
    }
  }
}
export default methods
